#pragma once

#define Q_PROP_DECL(type, name) public: \
    type name() const {return _##name; } \
	void set##name(const type& value) { _##name = value; } \
	private: \
	type _##name;

#define Q_VM_PROP_DECL(type, name) public: \
    type name() const {return _model.##name(); } \
	private: \
	type _##name;

#define Q_PROP_COPY(name) _##name = rhs._##name
